package model

import (
	"web/app/db"
)

// MUser 引用
var MUser = &User{}

// User 用户表
type User struct {
	ID     int    `gorm:"column:id"`
	OpenID string `gorm:"column:openId"`
	Phone  string `gorm:"column:phone"`
}

// TableName 用户表
func (User) TableName() string {
	return "users"
}

func (t *User) Create(user *User) error {
	return db.Mysql.Insert(user)
}

func (t *User) FindFirst(user *User) error {
	return db.Mysql.First(&user).Error
}

func (t *User) FindObjById(id interface{}) (*User, error) {
	var userModel User
	err := db.Mysql.Where("id = ?", id).First(&userModel).Error
	if err != nil {
		return nil, err
	}
	return &userModel, nil
}

func (t *User) DeleteObj(id int) error {
	user := User{
		ID: id,
	}
	err := db.Mysql.Delete(&user).Error
	return err
}

func (t *User) UpdateObjInfo(user *User) error {
	err := db.Mysql.Model(&user).Updates(&user).Error
	return err
}
